Document collaboration systems allow multiple clients to edit a single document or file to achieve a final version of the document or file. Although various technologies have been implemented in such systems, two well-known, yet flawed, approaches have been identified. The first approach is to merge small custom records with the changes of other client through operational transformation. This approach allows for rapid change propagation, but results in poor scaling of the system's logical complexity in terms of complex documents and voluminous operations. The second approach is to send an entire new copy of the document to a receiving client and allow the receiving client to determine the changes to be merged by comparing the new document against a baseline copy of the document. This approach adequately allows for scaling of the system's logical complexity, but does not provide for rapid change propagations.
It is with respect to these and other general considerations that the aspects disclosed herein have been made. Also, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving the specific problems identified in the background or elsewhere in this disclosure.